package com.itheima.thread;

import java.util.Random;

public class MyThread extends Thread {
    //定义红包金额
    static double money = 100;
    //定义红包个数
    static int count = 3;
    //最小红包金额
    static final double MIN = 0.01;

    @Override
    public void run() {
        //循环
        //同步代码块
        //判断数据是否到达末尾（已经到达）
        //没有到达
        synchronized (MyThread.class) {
            if (count == 0) {
                System.out.println(getName() + "没有抢到红包");
            } else {
                double prize = 0;
                //判断是否是最后一个红包
                if (count == 1) {
                    prize = money;
                } else {
                    //生成随机数
                    Random r = new Random();
                    /* 100元3个红包
                       第一个红包最高99.98
                       剩下的分配给第二个和第三个 每个0.01
                       公式 100 - （3 - 1）* 0.01
                    */
                    double bounds = money - (count - 1) * 0.01;
                    prize = r.nextDouble(bounds);
                    //如果生成0 就进行判断
                    if (prize < MIN) {
                        prize = 0.01;
                    }
                }
                money = money - prize;
                //红包个数--
                count--;
                //对于红包的结果进行打印
                System.out.println(getName() + "抢到了红包" + prize + "元");
            }
        }
    }
}
